package com.formulas.component.dto;

import java.io.Serial;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

/**
 * 这是与客户端通信的对象。
 * 客户端可以是视图层或其他HSF消费者
 * @author yiwannuofulasi
 * @date 2023/6/2 10:11
 */
public abstract class ClientObject implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 用于扩展值的Map.
     */
    protected Map<String, Object> extValues = new HashMap<>();

    /**
     * 根据扩展key获取值
     * @param key fieldName
     * @return value
     */
    public Object getExtField(String key){
        if(extValues != null){
            return extValues.get(key);
        }
        return null;
    }

    /**
     * 写入扩展值的Map.
     * @param fieldName key
     * @param value value
     */
    public void putExtField(String fieldName, Object value){
        this.extValues.put(fieldName, value);
    }

    /**
     * 获取扩展值Map.
     * @return extValues
     */
    public Map<String, Object> getExtValues() {
        return extValues;
    }

    /**
     * 设置扩展值Map.
     */
    public void setExtValues(Map<String, Object> extValues) {
        this.extValues = extValues;
    }
}
